#ifndef _CAM_CONTROLLER_H_
#define _CAM_CONTROLLER_H_


namespace camera
{
class AbstractCamera;


///////////////////////////////////////////////////////
///	\brief	Camera controller
///         Provides functionality for accessing and updating 
///         cameras along splines, by kb or mouse.
///////////////////////////////////////////////////////
class CamController
{
public:
    /**
    * Setup the controller
    */
                    CamController() {};
    /**
    * Delete the controller
    */
	virtual			~CamController() {};
    /**
    * Update the camera passed in.
    * @param _pCam  Pointer to camera to update
    */
    virtual void     Tick(AbstractCamera* _pCam, float dt) = 0;
};

}  // end namespace camera

#endif  // _CAM_CONTROLLER_H_